//
//  FilamentDebugTool.h
//  FilamentDemo
//
//  Created by 8000 on 2020/8/20.
//  Copyright © 2020 tencent. All rights reserved.
//

#ifndef FilamentDebugTool_h
#define FilamentDebugTool_h
#import <filament/Material.h>
#import <filament/MaterialEnums.h>
#import <filament/VertexBuffer.h>
#import <filament/IndexBuffer.h>
#import <utils/Entity.h>
#import <math/vec3.h>
#import <math/vec4.h>
#import <math/mat4.h>
#include <vector>

class FilamentDebugTool{
public:
	static filament::Material * genMat(filament::Engine *engine);
	
	static utils::Entity generateCubeEntity(float radius, filament::math::float4 color, filament::math::float3 position, filament::Engine *engine);

	static utils::Entity generateLineEntity(std::vector<filament::math::float3>points, filament::math::float4 color, filament::Engine *engine);

	static utils::Entity generateAlixEntity(filament::Engine *engine);
	
	static utils::Entity generateWireFrameForEntity(utils::Entity entity, filament::Engine *engine, bool transform_to_current = true);
  
	static void updateTransformForEntity(utils::Entity entity, filament::Engine *engine, filament::math::mat4f transform);
};
#endif /* FilamentDebugTool_h */
